#pragma once

#include "QSPrerequisites.h"

namespace QS
{
	/** Creates subsystems.  The caller must delete each subsystem when done with it. */
	class SystemFactory
	{
	public:
		SystemFactory(){}
		~SystemFactory(){}
	
		RenderSystem* createRenderSystem(Engine*);
		InputSystem* createInputSystem(Engine*);
		GuiSystem* createGuiSystem(Engine*);
		ScriptSystem* createScriptSystem(Engine*);
		HostSystem* createHostSystem(Engine*);	
		GameSystem* createGameSystem(Engine*);
		EventSystem* createEventSystem(Engine*);
	};
}